package com.aisino.springai.demos.chat.util;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;

/**
 * @author guochuantao
 * @version 1.0
 * @description
 * @since 2025/3/26 上午9:34
 */
public class CommonUtil {

    /**
     * 从JSON对象中获取指定字段并校验非空
     * @param jsonObject  JSON参数对象，不能为null
     * @param fieldName   需要提取的字段名
     * @param errorMsg    校验失败时的错误提示
     * @return 字段对应的非空字符串值
     * @throws IllegalArgumentException 参数不合法时抛出
     */
    public static String getAndCheck(JSONObject jsonObject, String fieldName, String errorMsg) {
        // 防御性校验：参数对象不能为空
        if (jsonObject == null) {
            throw new IllegalArgumentException("参数对象不能为空");
        }

        // 双重校验：字段存在性检查 + 非空内容检查
        if (ObjectUtil.isNull(jsonObject.get(fieldName))) {
            throw new IllegalArgumentException(errorMsg);
        }

        String value = jsonObject.getString(fieldName);
        if (value == null || value.trim().isEmpty()) {
            throw new IllegalArgumentException(errorMsg);
        }

        return value;
    }
}
